//Copyright (c) Microsoft Corporation.  All rights reserved.

#pragma once
#include "D3D11DeviceChild.h"

namespace  Microsoft { namespace WindowsAPICodePack { namespace DirectX { namespace Direct3D11 {

using namespace System;

    /// <summary>
    /// A depth-stencil-state interface accesses depth-stencil state which sets up the depth-stencil test for the output-merger stage.
    /// <para>(Also see DirectX SDK: ID3D11DepthStencilState)</para>
    /// </summary>
    public ref class DepthStencilState :
        public Microsoft::WindowsAPICodePack::DirectX::Direct3D11::DeviceChild
    {
    public: 
        /// <summary>
        /// Get the depth-stencil state.
        /// <para>(Also see DirectX SDK: ID3D11DepthStencilState::GetDesc)</para>
        /// </summary>
        DepthStencilDescription^ GetDescription();

    public protected:
        DepthStencilState()
        {
        }

    internal:
        DepthStencilState(ID3D11DepthStencilState* pNativeID3D11DepthStencilState)
        {
            Attach(pNativeID3D11DepthStencilState);
        }

    };
} } } }
